import axios from 'axios'
import router from '../router/index'
import ElementUI from 'element-ui'
const service = axios.create({
    baseURL: '/api',
    withCredentials: true,
    timeout: 10000
})


//请求拦截器   除了 login 和 getCaptcha 这两个请求不用携带token，其余请求都要携带token
service.interceptors.request.use(function (config) {
    let accessPath = ['/users/getCaptcha', '/users/login']
    let r = accessPath.some(item => config.url === item)
    if (r) {
        return config     //放行
    } else {
        let token = localStorage.getItem('hanghanghang-token');
        config.headers['authorization'] = token;
        return config
    }
})
// 响应拦截器    如果是响应验证码就不需要拦截，如果状态为10022 或者1004 则返回首页
service.interceptors.response.use(function (config) {
    if (config.config.url === '/users/getCaptcha') {
        return config
    } else {
        if (config.status.code === '10022' || config.status.code === '1004') {
            // this.$router.push('/login')  错误this的指向不对  引入router
            localStorage.removeItem('hanghanghang-token')
            ElementUI.Message.error('登录超时!')
            router.push('/login')
        }
        else {
            return config
        }
    }
})
export default service